<!DOCTYPE html>
<html>
	<head>
		<meta charset="{CHARSET}">
		<title></title>
		<script type="text/javascript">
			//值类型 字符串String、数字Number、布尔Boolean、对空Null、未定义Undefind、独一无二Symbol
			//引用 对象Object、数组Array、函数Function
//			var aa = 10;
//			var bb = 3.14;
//			Number.MAX_VALUE
//			Number.MIN_VALUE
//			
//			Number.POSITIVE_INFINITY
//			Number.NEGATIVE_INFINITY
//			Infinity

			//NaN 表示非数 Not a  Number
//			alert(NaN == NaN);
//			alert(isNaN("blue"));
//			alert(isNaN("666"))
			
			//类型判断
			//typeof  instanceof
//			var car = "BMW";
//			alert(typeof 760);
			
//			var a = new Array();
//			var b = {};
//			if(b instanceof Array){
//				document.write("b是一个数组类型");
//			}else{
//				document.write("b不是一个数组类型");
//			}
			
//			Number();
//			Boolean();
//			String();
//			parseFloat();
//			parseInt();

			//数组	定义方法1
			//var mycar = new Array();
			//定义方法2
			//var mycar2 = new Array("Saab","BMW","VW");
			//定义方法3
			//var mycar3 = ["Volvo","yiqi","松花江"];
			//数组添加
			//mycar3.push("吉利");
			
			//数组删除
			//.pop() 从尾部删除
			//.shift() 从头部删除
			//.splice() 从指定位置删除指定元素  .splice(索引位置,删除个数)
			
			//数组插入
			//.unshift() 从头部插入
			//.splice() 从指定位置插入指定个数的元素	.splice(索引位置，删除个数，插入元素1，插入元素n)；
			
			//数组合并
			//.concat(数组1，数组2，数组3)
			
			//数组转字符串
			//.join
			//var cars = mycar3.join("|");
			
			//数组元素倒序
			//.reverse
			
			//数组排序
			//.sort()
			
			//for循环遍历
//			for(var i = 0;i<mycar3.length;i++){
//				alert(mycar3[i]);
//			}
//			//for...in遍历
//			for(key in mycar3){
//				alert(mycar3[key]);
//			}
			
			//字符串拼接	"+"	.concat()
			//字符串搜索
			//indexOf(搜索词，起始索引位置)、
			//lastIndexOf(搜索词，起始索引位置) 检索顺序：后--》前
			//serch(搜索词)、serch(正则表达式) 匹配不上返回-1，匹配上会返回索引位置
			//match(搜索词)、match(正则表达式)
//			var str = '1a2b3c4d5e';
//			console.log(str.match('h'));
//			console.log(str.match('b'))

			//字符串截取
			//substring(截取开始位置，截取结束位置) 参数不可以为负数 返回新的字符串，其内容是从截取开始位置到截取结束位置-1的所有字符串。
			//slice(截取开始位置，截取结束位置) 参数可以为负数 若参数为负数，则该参数规定从字符串尾部开始算起位置
//			var str = "abcdefg";
//			console.log(str.slice(1,4));
//			console.log(str.slice(1));
//			console.log(str.slice(1,-1));
			//substr(截取开始位置,length)
			
			//字符串替换
			//replace(正则表达式/要被替换的字符串,要被替换的子字符串)
//			var str = "abaaefg";
//			console.log(str.replace('a','A'));
//			console.log(str.replace(/a/,'A'));

			//字符串切割
			//split(用于分割的子字符串，返回数组的最大长度)
//			var str = "a|b|c|d|e";
//			console.log(str.split("|"));
//			console.log(str.split("|",3));
//			console.log(str.split(''));

			//正则表达式组成
			//由普通字符(如字符a-z)以及特殊字符组成的文字模式
			//正则表达式=普通字符+特殊字符；
			//1、匹配符 [a-z] [A-Z] [0-9] [0-9a-z] [0-9a-zA-Z] [abcd] [1234]
			//^(脱字节) 取反意思 [^a-z] [^0-9]
//			var str = '139i4564351';
//			var reg = /[^0-9]/;
//			document.write(str.search(reg));
			
			//2、限定符
			//*：匹配前面的子表达式零次或多次，可以使用{0,}代替
			//+：匹配前面的子表达式一次或多次，可以使用{1,}代替
			//?：匹配前面的子表达式零次或一次，可以使用{0,1}代替
			//{n}：匹配确定的n次，如{18}，连续匹配18次
			//{n,}：至少匹配n次，如{1,}，代表最少匹配1次
			//{n,m}：最少匹配n次，最多匹配m次，{1.7}，代表最少匹配1次，最多匹配7次
//			var tel = '我的电话是1393636669';
//			var reg = /[\d]{11}/;	//[\d]=[0-9]
//			document.write(tel.search(reg));

			//3、定位符
			//^：匹配输入字符串的开始位置
			//$：匹配输入字符串的结束位置
			//\b：匹配一个单词边界
			//\B：匹配非单词边界
//			var str = "ni hao zhong guo";
//			var str1 = "nihaozhongguo";
//			var str = "2020-3-99";
//			var reg = /^[\d]{4}-[\d]{1,2}-[\d]{1,2}$/;
//			document.write(reg.test(str));

			//4、转义符
//			var str = "16+5=21";
//			var reg = /[\+]/;
//			document.write(reg.test(str));
			//g：全局模式/i：不区分大小写/m：多行模式
//			var str = "16+5=21";
//			var reg = /[0-9]+/g;
//			document.write(str.match(reg));
			</script>
	</head>
	<body>
	</body>
</html>
